<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::registration::DefaultConvergenceCriteria&lt; Scalar &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1registration_1_1_default_convergence_criteria.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="classpcl_1_1registration_1_1_default_convergence_criteria-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::registration::DefaultConvergenceCriteria&lt; Scalar &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p><b><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html" title="DefaultConvergenceCriteria represents an instantiation of ConvergenceCriteria, and implements the fol...">DefaultConvergenceCriteria</a></b> represents an instantiation of <a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html" title="ConvergenceCriteria represents an abstract base class for different convergence criteria used in regi...">ConvergenceCriteria</a>, and implements the following criteria for registration loop evaluation:  
 <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="default__convergence__criteria_8h_source.html">default_convergence_criteria.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::registration::DefaultConvergenceCriteria&lt; Scalar &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1registration_1_1_default_convergence_criteria.png" usemap="#pcl::registration::DefaultConvergenceCriteria_3C_20Scalar_20_3E_map" alt=""/>
  <map id="pcl::registration::DefaultConvergenceCriteria_3C_20Scalar_20_3E_map" name="pcl::registration::DefaultConvergenceCriteria_3C_20Scalar_20_3E_map">
<area href="classpcl_1_1registration_1_1_convergence_criteria.html" title="ConvergenceCriteria represents an abstract base class for different convergence criteria used in regi..." alt="pcl::registration::ConvergenceCriteria" shape="rect" coords="0,0,324,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:af73e20f93ee3785967363d1c7bebb191"><td class="memItemLeft" align="right" valign="top"><a id="af73e20f93ee3785967363d1c7bebb191"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>ConvergenceState</b> { <br />
&#160;&#160;<b>CONVERGENCE_CRITERIA_NOT_CONVERGED</b>
, <b>CONVERGENCE_CRITERIA_ITERATIONS</b>
, <b>CONVERGENCE_CRITERIA_TRANSFORM</b>
, <b>CONVERGENCE_CRITERIA_ABS_MSE</b>
, <br />
&#160;&#160;<b>CONVERGENCE_CRITERIA_REL_MSE</b>
, <b>CONVERGENCE_CRITERIA_NO_CORRESPONDENCES</b>
<br />
 }</td></tr>
<tr class="separator:af73e20f93ee3785967363d1c7bebb191"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c2d32b7c3fffa4ff9764ce0cabcd9eb"><td class="memItemLeft" align="right" valign="top"><a id="a7c2d32b7c3fffa4ff9764ce0cabcd9eb"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">DefaultConvergenceCriteria</a>&lt; Scalar &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a7c2d32b7c3fffa4ff9764ce0cabcd9eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58022c49c4fd3ad3b1e404c749ed4205"><td class="memItemLeft" align="right" valign="top"><a id="a58022c49c4fd3ad3b1e404c749ed4205"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">DefaultConvergenceCriteria</a>&lt; Scalar &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a58022c49c4fd3ad3b1e404c749ed4205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c1221a694fdcc1515111cd333f2eb5e"><td class="memItemLeft" align="right" valign="top"><a id="a1c1221a694fdcc1515111cd333f2eb5e"></a>
typedef Eigen::Matrix&lt; Scalar, 4, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Matrix4</b></td></tr>
<tr class="separator:a1c1221a694fdcc1515111cd333f2eb5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1registration_1_1_convergence_criteria"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1registration_1_1_convergence_criteria')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html">pcl::registration::ConvergenceCriteria</a></td></tr>
<tr class="memitem:acde97358c035a6a1969c5783ada714fc inherit pub_types_classpcl_1_1registration_1_1_convergence_criteria"><td class="memItemLeft" align="right" valign="top"><a id="acde97358c035a6a1969c5783ada714fc"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html">ConvergenceCriteria</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:acde97358c035a6a1969c5783ada714fc inherit pub_types_classpcl_1_1registration_1_1_convergence_criteria"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f38f0ee0857b68a39869f1f17e2ff33 inherit pub_types_classpcl_1_1registration_1_1_convergence_criteria"><td class="memItemLeft" align="right" valign="top"><a id="a1f38f0ee0857b68a39869f1f17e2ff33"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html">ConvergenceCriteria</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a1f38f0ee0857b68a39869f1f17e2ff33 inherit pub_types_classpcl_1_1registration_1_1_convergence_criteria"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a1d38271b1b9abafd6a0b14ccee346c08"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a1d38271b1b9abafd6a0b14ccee346c08">DefaultConvergenceCriteria</a> (const int &amp;iterations, const Matrix4 &amp;transform, const pcl::Correspondences &amp;correspondences)</td></tr>
<tr class="memdesc:a1d38271b1b9abafd6a0b14ccee346c08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. Sets:  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a1d38271b1b9abafd6a0b14ccee346c08">更多...</a><br /></td></tr>
<tr class="separator:a1d38271b1b9abafd6a0b14ccee346c08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ba345101e37eedd0edb92a4928b396e"><td class="memItemLeft" align="right" valign="top"><a id="a6ba345101e37eedd0edb92a4928b396e"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a6ba345101e37eedd0edb92a4928b396e">~DefaultConvergenceCriteria</a> ()</td></tr>
<tr class="memdesc:a6ba345101e37eedd0edb92a4928b396e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty destructor <br /></td></tr>
<tr class="separator:a6ba345101e37eedd0edb92a4928b396e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69ea6a9c7cb745017a08b8bc0e45eff4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a69ea6a9c7cb745017a08b8bc0e45eff4">setMaximumIterationsSimilarTransforms</a> (const int nr_iterations)</td></tr>
<tr class="memdesc:a69ea6a9c7cb745017a08b8bc0e45eff4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar.  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a69ea6a9c7cb745017a08b8bc0e45eff4">更多...</a><br /></td></tr>
<tr class="separator:a69ea6a9c7cb745017a08b8bc0e45eff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4192fc61604e364b5faf212d2a428c3"><td class="memItemLeft" align="right" valign="top"><a id="ab4192fc61604e364b5faf212d2a428c3"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ab4192fc61604e364b5faf212d2a428c3">getMaximumIterationsSimilarTransforms</a> () const</td></tr>
<tr class="memdesc:ab4192fc61604e364b5faf212d2a428c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar, as set by the user. <br /></td></tr>
<tr class="separator:ab4192fc61604e364b5faf212d2a428c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a551e8e512beef03d81cc64d0f598f147"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a551e8e512beef03d81cc64d0f598f147">setMaximumIterations</a> (const int nr_iterations)</td></tr>
<tr class="memdesc:a551e8e512beef03d81cc64d0f598f147"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum number of iterations the internal optimization should run for.  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a551e8e512beef03d81cc64d0f598f147">更多...</a><br /></td></tr>
<tr class="separator:a551e8e512beef03d81cc64d0f598f147"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11237b354ba3e07a400325c16fed8523"><td class="memItemLeft" align="right" valign="top"><a id="a11237b354ba3e07a400325c16fed8523"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a11237b354ba3e07a400325c16fed8523">getMaximumIterations</a> () const</td></tr>
<tr class="memdesc:a11237b354ba3e07a400325c16fed8523"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum number of iterations the internal optimization should run for, as set by the user. <br /></td></tr>
<tr class="separator:a11237b354ba3e07a400325c16fed8523"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace30f3cde1dfb1a63e0c0deac84083fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ace30f3cde1dfb1a63e0c0deac84083fe">setFailureAfterMaximumIterations</a> (const bool failure_after_max_iter)</td></tr>
<tr class="memdesc:ace30f3cde1dfb1a63e0c0deac84083fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies if the registration fails or converges when the maximum number of iterations is reached.  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ace30f3cde1dfb1a63e0c0deac84083fe">更多...</a><br /></td></tr>
<tr class="separator:ace30f3cde1dfb1a63e0c0deac84083fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ddf2d9957c228a7de44024ffef82456"><td class="memItemLeft" align="right" valign="top"><a id="a5ddf2d9957c228a7de44024ffef82456"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a5ddf2d9957c228a7de44024ffef82456">getFailureAfterMaximumIterations</a> () const</td></tr>
<tr class="memdesc:a5ddf2d9957c228a7de44024ffef82456"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get whether the registration will fail or converge when the maximum number of iterations is reached. <br /></td></tr>
<tr class="separator:a5ddf2d9957c228a7de44024ffef82456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c2718468e3f2f219dcbeab172982d84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a8c2718468e3f2f219dcbeab172982d84">setRotationThreshold</a> (const double threshold)</td></tr>
<tr class="memdesc:a8c2718468e3f2f219dcbeab172982d84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution.  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a8c2718468e3f2f219dcbeab172982d84">更多...</a><br /></td></tr>
<tr class="separator:a8c2718468e3f2f219dcbeab172982d84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af862f17b53a068b23a4f27ff5bd3379b"><td class="memItemLeft" align="right" valign="top"><a id="af862f17b53a068b23a4f27ff5bd3379b"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#af862f17b53a068b23a4f27ff5bd3379b">getRotationThreshold</a> () const</td></tr>
<tr class="memdesc:af862f17b53a068b23a4f27ff5bd3379b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) as set by the user. <br /></td></tr>
<tr class="separator:af862f17b53a068b23a4f27ff5bd3379b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d3085bb14b4a881acb7da2670573815"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a5d3085bb14b4a881acb7da2670573815">setTranslationThreshold</a> (const double threshold)</td></tr>
<tr class="memdesc:a5d3085bb14b4a881acb7da2670573815"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the translation threshold (maximum allowable difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution.  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a5d3085bb14b4a881acb7da2670573815">更多...</a><br /></td></tr>
<tr class="separator:a5d3085bb14b4a881acb7da2670573815"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1ec6b6d90ee37a6e72337d25ac59f94"><td class="memItemLeft" align="right" valign="top"><a id="aa1ec6b6d90ee37a6e72337d25ac59f94"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aa1ec6b6d90ee37a6e72337d25ac59f94">getTranslationThreshold</a> () const</td></tr>
<tr class="memdesc:aa1ec6b6d90ee37a6e72337d25ac59f94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) as set by the user. <br /></td></tr>
<tr class="separator:aa1ec6b6d90ee37a6e72337d25ac59f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f7261d61ed08afcb5e69b85d29371c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a5f7261d61ed08afcb5e69b85d29371c1">setRelativeMSE</a> (const double mse_relative)</td></tr>
<tr class="memdesc:a5f7261d61ed08afcb5e69b85d29371c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the relative MSE between two consecutive sets of correspondences.  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a5f7261d61ed08afcb5e69b85d29371c1">更多...</a><br /></td></tr>
<tr class="separator:a5f7261d61ed08afcb5e69b85d29371c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0df120e947e45b9b9867da9c8ebb9a1"><td class="memItemLeft" align="right" valign="top"><a id="ad0df120e947e45b9b9867da9c8ebb9a1"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ad0df120e947e45b9b9867da9c8ebb9a1">getRelativeMSE</a> () const</td></tr>
<tr class="memdesc:ad0df120e947e45b9b9867da9c8ebb9a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the relative MSE between two consecutive sets of correspondences. <br /></td></tr>
<tr class="separator:ad0df120e947e45b9b9867da9c8ebb9a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290ffd43753d70d66b15cd54e7b089be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a290ffd43753d70d66b15cd54e7b089be">setAbsoluteMSE</a> (const double mse_absolute)</td></tr>
<tr class="memdesc:a290ffd43753d70d66b15cd54e7b089be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the absolute MSE between two consecutive sets of correspondences.  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a290ffd43753d70d66b15cd54e7b089be">更多...</a><br /></td></tr>
<tr class="separator:a290ffd43753d70d66b15cd54e7b089be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a700cd1931c15a10d46724fe04465c686"><td class="memItemLeft" align="right" valign="top"><a id="a700cd1931c15a10d46724fe04465c686"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a700cd1931c15a10d46724fe04465c686">getAbsoluteMSE</a> () const</td></tr>
<tr class="memdesc:a700cd1931c15a10d46724fe04465c686"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the absolute MSE between two consecutive sets of correspondences. <br /></td></tr>
<tr class="separator:a700cd1931c15a10d46724fe04465c686"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf5b7159af38f430d1ca543c7ea83838"><td class="memItemLeft" align="right" valign="top"><a id="adf5b7159af38f430d1ca543c7ea83838"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#adf5b7159af38f430d1ca543c7ea83838">hasConverged</a> ()</td></tr>
<tr class="memdesc:adf5b7159af38f430d1ca543c7ea83838"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if convergence has been reached. <br /></td></tr>
<tr class="separator:adf5b7159af38f430d1ca543c7ea83838"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa904602d1ff7e9d6515316af8f07d7da"><td class="memItemLeft" align="right" valign="top"><a id="aa904602d1ff7e9d6515316af8f07d7da"></a>
ConvergenceState&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aa904602d1ff7e9d6515316af8f07d7da">getConvergenceState</a> ()</td></tr>
<tr class="memdesc:aa904602d1ff7e9d6515316af8f07d7da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the convergence state after hasConverged () <br /></td></tr>
<tr class="separator:aa904602d1ff7e9d6515316af8f07d7da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1351fb32104e835226a859ff32242b9c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a1351fb32104e835226a859ff32242b9c">setConvergenceState</a> (ConvergenceState c)</td></tr>
<tr class="memdesc:a1351fb32104e835226a859ff32242b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the convergence state externally (for example, when ICP does not find enough correspondences to estimate a transformation, the function is called setting the convergence state to ConvergenceState::CONVERGENCE_CRITERIA_NO_CORRESPONDENCES)  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a1351fb32104e835226a859ff32242b9c">更多...</a><br /></td></tr>
<tr class="separator:a1351fb32104e835226a859ff32242b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1registration_1_1_convergence_criteria')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html">pcl::registration::ConvergenceCriteria</a></td></tr>
<tr class="memitem:a407ba197cd3e6cfc300dabc6762e679b inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="memItemLeft" align="right" valign="top"><a id="a407ba197cd3e6cfc300dabc6762e679b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html#a407ba197cd3e6cfc300dabc6762e679b">ConvergenceCriteria</a> ()</td></tr>
<tr class="memdesc:a407ba197cd3e6cfc300dabc6762e679b inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:a407ba197cd3e6cfc300dabc6762e679b inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff67157db93f77f43cca661caf72f9f3 inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="memItemLeft" align="right" valign="top"><a id="aff67157db93f77f43cca661caf72f9f3"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html#aff67157db93f77f43cca661caf72f9f3">~ConvergenceCriteria</a> ()</td></tr>
<tr class="memdesc:aff67157db93f77f43cca661caf72f9f3 inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty destructor. <br /></td></tr>
<tr class="separator:aff67157db93f77f43cca661caf72f9f3 inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2e124161abf399febcbe3f3b4ff68b4 inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="memItemLeft" align="right" valign="top"><a id="ae2e124161abf399febcbe3f3b4ff68b4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html#ae2e124161abf399febcbe3f3b4ff68b4">operator bool</a> ()</td></tr>
<tr class="memdesc:ae2e124161abf399febcbe3f3b4ff68b4 inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bool operator. <br /></td></tr>
<tr class="separator:ae2e124161abf399febcbe3f3b4ff68b4 inherit pub_methods_classpcl_1_1registration_1_1_convergence_criteria"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:ac33b546c401ca10a785999e745fb1df2"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ac33b546c401ca10a785999e745fb1df2">calculateMSE</a> (const pcl::Correspondences &amp;correspondences) const</td></tr>
<tr class="memdesc:ac33b546c401ca10a785999e745fb1df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the mean squared error (MSE) of the distance for a given set of correspondences.  <a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ac33b546c401ca10a785999e745fb1df2">更多...</a><br /></td></tr>
<tr class="separator:ac33b546c401ca10a785999e745fb1df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:a5c4798a891fd194927c6c5bacfcd35af"><td class="memItemLeft" align="right" valign="top"><a id="a5c4798a891fd194927c6c5bacfcd35af"></a>
const int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a5c4798a891fd194927c6c5bacfcd35af">iterations_</a></td></tr>
<tr class="memdesc:a5c4798a891fd194927c6c5bacfcd35af"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of iterations done by the registration loop so far. <br /></td></tr>
<tr class="separator:a5c4798a891fd194927c6c5bacfcd35af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2318257a84e663a1cf7ef694a89aa25c"><td class="memItemLeft" align="right" valign="top"><a id="a2318257a84e663a1cf7ef694a89aa25c"></a>
const Matrix4 &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a2318257a84e663a1cf7ef694a89aa25c">transformation_</a></td></tr>
<tr class="memdesc:a2318257a84e663a1cf7ef694a89aa25c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current transformation obtained by the transformation estimation method. <br /></td></tr>
<tr class="separator:a2318257a84e663a1cf7ef694a89aa25c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a599456356e647fb385523f0660ae9569"><td class="memItemLeft" align="right" valign="top"><a id="a599456356e647fb385523f0660ae9569"></a>
const pcl::Correspondences &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a599456356e647fb385523f0660ae9569">correspondences_</a></td></tr>
<tr class="memdesc:a599456356e647fb385523f0660ae9569"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current set of point correspondences between the source and the target. <br /></td></tr>
<tr class="separator:a599456356e647fb385523f0660ae9569"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee76f5b94e1415500bdace09aab6bc47"><td class="memItemLeft" align="right" valign="top"><a id="aee76f5b94e1415500bdace09aab6bc47"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aee76f5b94e1415500bdace09aab6bc47">correspondences_prev_mse_</a></td></tr>
<tr class="memdesc:aee76f5b94e1415500bdace09aab6bc47"><td class="mdescLeft">&#160;</td><td class="mdescRight">The MSE for the previous set of correspondences. <br /></td></tr>
<tr class="separator:aee76f5b94e1415500bdace09aab6bc47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a9b10bb8d05cd7e8c1ed67a612af227"><td class="memItemLeft" align="right" valign="top"><a id="a1a9b10bb8d05cd7e8c1ed67a612af227"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a1a9b10bb8d05cd7e8c1ed67a612af227">correspondences_cur_mse_</a></td></tr>
<tr class="memdesc:a1a9b10bb8d05cd7e8c1ed67a612af227"><td class="mdescLeft">&#160;</td><td class="mdescRight">The MSE for the current set of correspondences. <br /></td></tr>
<tr class="separator:a1a9b10bb8d05cd7e8c1ed67a612af227"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67204183600575362789d8e5bf6a33c7"><td class="memItemLeft" align="right" valign="top"><a id="a67204183600575362789d8e5bf6a33c7"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a67204183600575362789d8e5bf6a33c7">max_iterations_</a></td></tr>
<tr class="memdesc:a67204183600575362789d8e5bf6a33c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum nuyyGmber of iterations that the registration loop is to be executed. <br /></td></tr>
<tr class="separator:a67204183600575362789d8e5bf6a33c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad638c67114687c49f4f2d4fdf0f3f75a"><td class="memItemLeft" align="right" valign="top"><a id="ad638c67114687c49f4f2d4fdf0f3f75a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ad638c67114687c49f4f2d4fdf0f3f75a">failure_after_max_iter_</a></td></tr>
<tr class="memdesc:ad638c67114687c49f4f2d4fdf0f3f75a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifys if the registration fails or converges when the maximum number of iterations is reached. <br /></td></tr>
<tr class="separator:ad638c67114687c49f4f2d4fdf0f3f75a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea294cd3daa63127d4230280f15509d9"><td class="memItemLeft" align="right" valign="top"><a id="aea294cd3daa63127d4230280f15509d9"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aea294cd3daa63127d4230280f15509d9">rotation_threshold_</a></td></tr>
<tr class="memdesc:aea294cd3daa63127d4230280f15509d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The rotation threshold is the relative rotation between two iterations (as angle cosine). <br /></td></tr>
<tr class="separator:aea294cd3daa63127d4230280f15509d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7df811255c4264f3569f2c812abbc8f7"><td class="memItemLeft" align="right" valign="top"><a id="a7df811255c4264f3569f2c812abbc8f7"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a7df811255c4264f3569f2c812abbc8f7">translation_threshold_</a></td></tr>
<tr class="memdesc:a7df811255c4264f3569f2c812abbc8f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The translation threshold is the relative translation between two iterations (0 if no translation). <br /></td></tr>
<tr class="separator:a7df811255c4264f3569f2c812abbc8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebfbc8c5443ffec37aaa3a735db7f479"><td class="memItemLeft" align="right" valign="top"><a id="aebfbc8c5443ffec37aaa3a735db7f479"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aebfbc8c5443ffec37aaa3a735db7f479">mse_threshold_relative_</a></td></tr>
<tr class="memdesc:aebfbc8c5443ffec37aaa3a735db7f479"><td class="mdescLeft">&#160;</td><td class="mdescRight">The relative change from the previous MSE for the current set of correspondences, e.g. .1 means 10% change. <br /></td></tr>
<tr class="separator:aebfbc8c5443ffec37aaa3a735db7f479"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94d8d4f4820d53c59b8893c8f6eb7845"><td class="memItemLeft" align="right" valign="top"><a id="a94d8d4f4820d53c59b8893c8f6eb7845"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a94d8d4f4820d53c59b8893c8f6eb7845">mse_threshold_absolute_</a></td></tr>
<tr class="memdesc:a94d8d4f4820d53c59b8893c8f6eb7845"><td class="mdescLeft">&#160;</td><td class="mdescRight">The absolute change from the previous MSE for the current set of correspondences. <br /></td></tr>
<tr class="separator:a94d8d4f4820d53c59b8893c8f6eb7845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b5cc87b7d5ccbb14b74d24b22d0c7b7"><td class="memItemLeft" align="right" valign="top"><a id="a0b5cc87b7d5ccbb14b74d24b22d0c7b7"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a0b5cc87b7d5ccbb14b74d24b22d0c7b7">iterations_similar_transforms_</a></td></tr>
<tr class="memdesc:a0b5cc87b7d5ccbb14b74d24b22d0c7b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal counter for the number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar. <br /></td></tr>
<tr class="separator:a0b5cc87b7d5ccbb14b74d24b22d0c7b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7ad260338d3dabd78c5bc3ea886914b"><td class="memItemLeft" align="right" valign="top"><a id="af7ad260338d3dabd78c5bc3ea886914b"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#af7ad260338d3dabd78c5bc3ea886914b">max_iterations_similar_transforms_</a></td></tr>
<tr class="memdesc:af7ad260338d3dabd78c5bc3ea886914b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar. <br /></td></tr>
<tr class="separator:af7ad260338d3dabd78c5bc3ea886914b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a014306c885752b9fd19079f570dd20e3"><td class="memItemLeft" align="right" valign="top"><a id="a014306c885752b9fd19079f570dd20e3"></a>
ConvergenceState&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a014306c885752b9fd19079f570dd20e3">convergence_state_</a></td></tr>
<tr class="memdesc:a014306c885752b9fd19079f570dd20e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The state of the convergence (e.g., why did the registration converge). <br /></td></tr>
<tr class="separator:a014306c885752b9fd19079f570dd20e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename Scalar = float&gt;<br />
class pcl::registration::DefaultConvergenceCriteria&lt; Scalar &gt;</h3>

<p><b><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html" title="DefaultConvergenceCriteria represents an instantiation of ConvergenceCriteria, and implements the fol...">DefaultConvergenceCriteria</a></b> represents an instantiation of <a class="el" href="classpcl_1_1registration_1_1_convergence_criteria.html" title="ConvergenceCriteria represents an abstract base class for different convergence criteria used in regi...">ConvergenceCriteria</a>, and implements the following criteria for registration loop evaluation: </p>
<ul>
<li>a maximum number of iterations has been reached</li>
<li>the transformation (R, t) cannot be further updated (the difference between current and previous is smaller than a threshold)</li>
<li>the Mean Squared Error (MSE) between the current set of correspondences and the previous one is smaller than some threshold (both relative and absolute tests)</li>
</ul>
<dl class="section note"><dt>注解</dt><dd>Convergence is considered reached if ANY of the above criteria are met.</dd></dl>
<dl class="section author"><dt>作者</dt><dd>Radu B. Rusu </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a1d38271b1b9abafd6a0b14ccee346c08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d38271b1b9abafd6a0b14ccee346c08">&#9670;&nbsp;</a></span>DefaultConvergenceCriteria()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::<a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">DefaultConvergenceCriteria</a> </td>
          <td>(</td>
          <td class="paramtype">const int &amp;&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Matrix4 &amp;&#160;</td>
          <td class="paramname"><em>transform</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const pcl::Correspondences &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Empty constructor. Sets: </p>
<ul>
<li>the maximum number of iterations to 1000</li>
<li>the rotation threshold to 0.256 degrees (0.99999)</li>
<li>the translation threshold to 0.0003 meters (3e-4^2)</li>
<li>the MSE relative / absolute thresholds to 0.001% and 1e-12</li>
</ul>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iterations</td><td>a reference to the number of iterations the loop has ran so far </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>a reference to the current transformation obtained by the transformation evaluation </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">correspondences</td><td>a reference to the current set of point correspondences between source and target </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;          : <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a5c4798a891fd194927c6c5bacfcd35af">iterations_</a> (iterations)</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a2318257a84e663a1cf7ef694a89aa25c">transformation_</a> (transform)</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a599456356e647fb385523f0660ae9569">correspondences_</a> (correspondences)</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aee76f5b94e1415500bdace09aab6bc47">correspondences_prev_mse_</a> (std::numeric_limits&lt;double&gt;::max ())</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a1a9b10bb8d05cd7e8c1ed67a612af227">correspondences_cur_mse_</a> (std::numeric_limits&lt;double&gt;::max ())</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a67204183600575362789d8e5bf6a33c7">max_iterations_</a> (100)                 <span class="comment">// 100 iterations</span></div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ad638c67114687c49f4f2d4fdf0f3f75a">failure_after_max_iter_</a> (<span class="keyword">false</span>)</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aea294cd3daa63127d4230280f15509d9">rotation_threshold_</a> (0.99999)         <span class="comment">// 0.256 degrees</span></div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a7df811255c4264f3569f2c812abbc8f7">translation_threshold_</a> (3e-4 * 3e-4)  <span class="comment">// 0.0003 meters</span></div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aebfbc8c5443ffec37aaa3a735db7f479">mse_threshold_relative_</a> (0.00001)     <span class="comment">// 0.001% of the previous MSE (relative error)</span></div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a94d8d4f4820d53c59b8893c8f6eb7845">mse_threshold_absolute_</a> (1e-12)       <span class="comment">// MSE (absolute error)</span></div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a0b5cc87b7d5ccbb14b74d24b22d0c7b7">iterations_similar_transforms_</a> (0)</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#af7ad260338d3dabd78c5bc3ea886914b">max_iterations_similar_transforms_</a> (0)</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;          , <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a014306c885752b9fd19079f570dd20e3">convergence_state_</a> (CONVERGENCE_CRITERIA_NOT_CONVERGED)</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        {</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a014306c885752b9fd19079f570dd20e3"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a014306c885752b9fd19079f570dd20e3">pcl::registration::DefaultConvergenceCriteria::convergence_state_</a></div><div class="ttdeci">ConvergenceState convergence_state_</div><div class="ttdoc">The state of the convergence (e.g., why did the registration converge).</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:270</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a0b5cc87b7d5ccbb14b74d24b22d0c7b7"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a0b5cc87b7d5ccbb14b74d24b22d0c7b7">pcl::registration::DefaultConvergenceCriteria::iterations_similar_transforms_</a></div><div class="ttdeci">int iterations_similar_transforms_</div><div class="ttdoc">Internal counter for the number of iterations that the internal rotation, translation,...</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:263</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a1a9b10bb8d05cd7e8c1ed67a612af227"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a1a9b10bb8d05cd7e8c1ed67a612af227">pcl::registration::DefaultConvergenceCriteria::correspondences_cur_mse_</a></div><div class="ttdeci">double correspondences_cur_mse_</div><div class="ttdoc">The MSE for the current set of correspondences.</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:241</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a2318257a84e663a1cf7ef694a89aa25c"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a2318257a84e663a1cf7ef694a89aa25c">pcl::registration::DefaultConvergenceCriteria::transformation_</a></div><div class="ttdeci">const Matrix4 &amp; transformation_</div><div class="ttdoc">The current transformation obtained by the transformation estimation method.</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:232</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a599456356e647fb385523f0660ae9569"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a599456356e647fb385523f0660ae9569">pcl::registration::DefaultConvergenceCriteria::correspondences_</a></div><div class="ttdeci">const pcl::Correspondences &amp; correspondences_</div><div class="ttdoc">The current set of point correspondences between the source and the target.</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:235</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a5c4798a891fd194927c6c5bacfcd35af"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a5c4798a891fd194927c6c5bacfcd35af">pcl::registration::DefaultConvergenceCriteria::iterations_</a></div><div class="ttdeci">const int &amp; iterations_</div><div class="ttdoc">The number of iterations done by the registration loop so far.</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:229</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a67204183600575362789d8e5bf6a33c7"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a67204183600575362789d8e5bf6a33c7">pcl::registration::DefaultConvergenceCriteria::max_iterations_</a></div><div class="ttdeci">int max_iterations_</div><div class="ttdoc">The maximum nuyyGmber of iterations that the registration loop is to be executed.</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:244</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a7df811255c4264f3569f2c812abbc8f7"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a7df811255c4264f3569f2c812abbc8f7">pcl::registration::DefaultConvergenceCriteria::translation_threshold_</a></div><div class="ttdeci">double translation_threshold_</div><div class="ttdoc">The translation threshold is the relative translation between two iterations (0 if no translation).</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:253</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_a94d8d4f4820d53c59b8893c8f6eb7845"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a94d8d4f4820d53c59b8893c8f6eb7845">pcl::registration::DefaultConvergenceCriteria::mse_threshold_absolute_</a></div><div class="ttdeci">double mse_threshold_absolute_</div><div class="ttdoc">The absolute change from the previous MSE for the current set of correspondences.</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:259</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_ad638c67114687c49f4f2d4fdf0f3f75a"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ad638c67114687c49f4f2d4fdf0f3f75a">pcl::registration::DefaultConvergenceCriteria::failure_after_max_iter_</a></div><div class="ttdeci">bool failure_after_max_iter_</div><div class="ttdoc">Specifys if the registration fails or converges when the maximum number of iterations is reached.</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:247</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_aea294cd3daa63127d4230280f15509d9"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aea294cd3daa63127d4230280f15509d9">pcl::registration::DefaultConvergenceCriteria::rotation_threshold_</a></div><div class="ttdeci">double rotation_threshold_</div><div class="ttdoc">The rotation threshold is the relative rotation between two iterations (as angle cosine).</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:250</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_aebfbc8c5443ffec37aaa3a735db7f479"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aebfbc8c5443ffec37aaa3a735db7f479">pcl::registration::DefaultConvergenceCriteria::mse_threshold_relative_</a></div><div class="ttdeci">double mse_threshold_relative_</div><div class="ttdoc">The relative change from the previous MSE for the current set of correspondences, e....</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:256</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_aee76f5b94e1415500bdace09aab6bc47"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aee76f5b94e1415500bdace09aab6bc47">pcl::registration::DefaultConvergenceCriteria::correspondences_prev_mse_</a></div><div class="ttdeci">double correspondences_prev_mse_</div><div class="ttdoc">The MSE for the previous set of correspondences.</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:238</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_default_convergence_criteria_html_af7ad260338d3dabd78c5bc3ea886914b"><div class="ttname"><a href="classpcl_1_1registration_1_1_default_convergence_criteria.html#af7ad260338d3dabd78c5bc3ea886914b">pcl::registration::DefaultConvergenceCriteria::max_iterations_similar_transforms_</a></div><div class="ttdeci">int max_iterations_similar_transforms_</div><div class="ttdoc">The maximum number of iterations that the internal rotation, translation, and MSE differences are all...</div><div class="ttdef"><b>Definition:</b> default_convergence_criteria.h:267</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="ac33b546c401ca10a785999e745fb1df2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac33b546c401ca10a785999e745fb1df2">&#9670;&nbsp;</a></span>calculateMSE()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::calculateMSE </td>
          <td>(</td>
          <td class="paramtype">const pcl::Correspondences &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculate the mean squared error (MSE) of the distance for a given set of correspondences. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">correspondences</td><td>the given set of correspondences </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        {</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;          <span class="keywordtype">double</span> mse = 0;</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;          <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; correspondences.size (); ++i)</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;            mse += correspondences[i].distance;</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;          mse /= double (correspondences.size ());</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;          <span class="keywordflow">return</span> (mse);</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a290ffd43753d70d66b15cd54e7b089be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a290ffd43753d70d66b15cd54e7b089be">&#9670;&nbsp;</a></span>setAbsoluteMSE()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::setAbsoluteMSE </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mse_absolute</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the absolute MSE between two consecutive sets of correspondences. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mse_absolute</td><td>the relative MSE threshold </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;{ <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a94d8d4f4820d53c59b8893c8f6eb7845">mse_threshold_absolute_</a> = mse_absolute; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1351fb32104e835226a859ff32242b9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1351fb32104e835226a859ff32242b9c">&#9670;&nbsp;</a></span>setConvergenceState()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::setConvergenceState </td>
          <td>(</td>
          <td class="paramtype">ConvergenceState&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the convergence state externally (for example, when ICP does not find enough correspondences to estimate a transformation, the function is called setting the convergence state to ConvergenceState::CONVERGENCE_CRITERIA_NO_CORRESPONDENCES) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>the convergence state </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        {</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;          <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a014306c885752b9fd19079f570dd20e3">convergence_state_</a> = c;</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ace30f3cde1dfb1a63e0c0deac84083fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace30f3cde1dfb1a63e0c0deac84083fe">&#9670;&nbsp;</a></span>setFailureAfterMaximumIterations()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::setFailureAfterMaximumIterations </td>
          <td>(</td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>failure_after_max_iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Specifies if the registration fails or converges when the maximum number of iterations is reached. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">failure_after_max_iter</td><td>If true, the registration fails. If false, the registration is assumed to have converged. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;{ <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#ad638c67114687c49f4f2d4fdf0f3f75a">failure_after_max_iter_</a> = failure_after_max_iter; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a551e8e512beef03d81cc64d0f598f147"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a551e8e512beef03d81cc64d0f598f147">&#9670;&nbsp;</a></span>setMaximumIterations()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::setMaximumIterations </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>nr_iterations</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the maximum number of iterations the internal optimization should run for. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nr_iterations</td><td>the maximum number of iterations the internal optimization should run for </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;{ <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a67204183600575362789d8e5bf6a33c7">max_iterations_</a> = nr_iterations; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a69ea6a9c7cb745017a08b8bc0e45eff4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69ea6a9c7cb745017a08b8bc0e45eff4">&#9670;&nbsp;</a></span>setMaximumIterationsSimilarTransforms()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::setMaximumIterationsSimilarTransforms </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>nr_iterations</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the maximum number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nr_iterations</td><td>the maximum number of iterations </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;{ <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#af7ad260338d3dabd78c5bc3ea886914b">max_iterations_similar_transforms_</a> = nr_iterations; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5f7261d61ed08afcb5e69b85d29371c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f7261d61ed08afcb5e69b85d29371c1">&#9670;&nbsp;</a></span>setRelativeMSE()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::setRelativeMSE </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mse_relative</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the relative MSE between two consecutive sets of correspondences. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mse_relative</td><td>the relative MSE threshold </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;{ <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aebfbc8c5443ffec37aaa3a735db7f479">mse_threshold_relative_</a> = mse_relative; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8c2718468e3f2f219dcbeab172982d84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c2718468e3f2f219dcbeab172982d84">&#9670;&nbsp;</a></span>setRotationThreshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::setRotationThreshold </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>threshold</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">threshold</td><td>the rotation threshold in order for an optimization to be considered as having converged to the final solution. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;{ <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#aea294cd3daa63127d4230280f15509d9">rotation_threshold_</a> = threshold; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5d3085bb14b4a881acb7da2670573815"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d3085bb14b4a881acb7da2670573815">&#9670;&nbsp;</a></span>setTranslationThreshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar  = float&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">pcl::registration::DefaultConvergenceCriteria</a>&lt; Scalar &gt;::setTranslationThreshold </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>threshold</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the translation threshold (maximum allowable difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">threshold</td><td>the translation threshold in order for an optimization to be considered as having converged to the final solution. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;{ <a class="code" href="classpcl_1_1registration_1_1_default_convergence_criteria.html#a7df811255c4264f3569f2c812abbc8f7">translation_threshold_</a> = threshold; }</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>registration/include/pcl/registration/<a class="el" href="default__convergence__criteria_8h_source.html">default_convergence_criteria.h</a></li>
<li>registration/include/pcl/registration/impl/<a class="el" href="default__convergence__criteria_8hpp_source.html">default_convergence_criteria.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>registration</b></li><li class="navelem"><a class="el" href="classpcl_1_1registration_1_1_default_convergence_criteria.html">DefaultConvergenceCriteria</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
